package com.download.web.service;

import com.download.web.entity.BusArticle;
import com.baomidou.mybatisplus.extension.service.IService;
import com.download.web.entity.model.ArticleListModel;
import com.download.web.entity.model.ArticleModel;
import com.download.web.entity.model.Page;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cmy
 * @since 2019-02-20
 */
public interface IBusArticleService extends IService<BusArticle> {

    /**
     * 分页查找
     * @param pageIndex
     * @param pageSize
     * @return
     */
    Page<ArticleListModel> articlePage(Integer pageIndex,Integer pageSize,Integer isRotation);

    /**
     * 按文章类别分页查找
     * @param pageIndex
     * @param pageSize
     * @param category
     * @return
     */
    Page<ArticleListModel> articlePageByCategory(Integer pageIndex, Integer pageSize,Integer category);

    Page<ArticleListModel> articlePageByTags(Integer pageIndex, Integer pageSize,Integer category,String tags);


    /**
     * 新增文章
     * @param articleModel
     */
    void saveArticle(ArticleModel articleModel);

    /**
     * 修改文章
     * @param articleModel
     */
    void updateArticle(ArticleModel articleModel);

    /**
     * 按文章id查找文章信息
     * @param id
     * @return
     */
    ArticleModel findArticleById(Integer id);

    /**
     * 修改浏览后的文章数量加1
     * @param id
     */
    void addBrowseNum(Integer id);

    /**
     * 按文章分类查找文章列表
     * @param pageIndex
     * @param pageSize
     * @param type
     * @return
     */
    Page<ArticleListModel> articlePageByType(Integer pageIndex,Integer pageSize,Integer type);

    /**
     * 按文章分类查找文章列表
     * @param pageIndex
     * @param pageSize
     * @param type
     * @param keywords
     * @return
     */
    Page<ArticleListModel> articlePageByTypeAndKeywords(String keywords,Integer pageIndex,Integer pageSize,Integer type);
    /**
     * 按文章分类查找文章列表
     * @param pageIndex
     * @param pageSize
     * @param type
     * @return
     */
    Page<ArticleListModel> articlePageByKeyword(Integer pageIndex,Integer pageSize,String type);

    BusArticle articleByLatestTag(String tags);
}
